using System.Collections;

namespace Unity.Extensions
{
    /// <summary>
    /// Represents a collection of parameters.
    /// </summary>
    public interface IParameterCollection : IEnumerable
    {
        /// <summary>
        /// Gets or sets the element with the specified name.
        /// </summary>
        /// <param name="name">The name of the element to get or set.</param>
        /// <returns>The element with the specified name.</returns>
        object this[string name] { get; set; }

        /// <summary>
        /// Gets or sets the element at the specified index.
        /// </summary>
        /// <param name="idx">
        /// The zero-based index of the element to get or set.
        /// </param>
        /// <returns>The element at the specified index.</returns>
        object this[int idx] { get; set; }
    }
}